package 蓝桥._2024.拼正方形;

// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main2 {
    public static void main(String[] args) {
//        long m = 7385137888721L;
//        long n = 10470245;
        long m = 1;
        long n = 4;
        long s = m * 4 + n;
//        System.out.println("mmm为："+m);
//        System.out.println("面积为：" + s);
        int max = (int)Math.sqrt(s);
//        System.out.println("最大可能边长为：" +max);

        // 最小边长：仅有2x2组成的最大边长
        int min = (int) Math.sqrt(m) * 2;

        for(int i = max; i >= min; i--) {
            // 先用2x2的正方形填充
            long need_1 = (long) (Math.pow(i,2) - Math.min(Math.pow(i/2,2) * 4, m * 4));
            if(need_1 <= n) {
                System.out.println(i);
                break;
            }
        }

    }
}